package main

import (
	"flag"
	"os"

	"github.com/gofiber/fiber/v2"
	"github.com/gofiber/fiber/v2/log"
)

const defaultDir = "./testdata"

func main() {
	workDir := flag.String("f", defaultDir, "工作目录")
	flag.Parse()

	// 检查工作路径是否存在
	if _, err := os.Stat(*workDir); os.IsNotExist(err) {
		log.Infof("指定的目录不存在: %s，使用默认目录: %s", *workDir, defaultDir)
		*workDir = defaultDir
	}

	log.Infof("使用工作目录: %s", *workDir)

	root := &Root{root: *workDir}
	fsys := root.FS()
	fileService := NewFileService(fsys, *workDir)
	app := fiber.New()

	// 路由注册全部交给 handler.go
	SetupRoutes(app, fileService)

	log.Info("Starting server on http://localhost:3000")
	if err := app.Listen(":3000"); err != nil {
		log.Fatalf("Failed to start server: %v", err)
	}
}

// 递归渲染目录为 HTML 列表
